home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 9 / FM Towns Free Software Collection 9.iso / t_os / tool / tokei / awase386.bas < prev    next >
BASIC Source File  |  1994-11-16  |  19KB  |  500 lines

  1. 1000 'awase386.bas",a
  2. 1010 '::::::::::::::::::::::::::::::::::::::
  3. 1020 ':: 時計のお勉強 -時刻を合わせよう編-::
  4. 1030 '::    ver 1.11  1994/8/16           ::
  5. 1040 '::    programed by akihiko hayashi  ::
  6. 1050 '::::::::::::::::::::::::::::::::::::::
  7. 1060 '::::::     設定      :::::::
  8. 1070 CLEAR,,1024,4096
  9. 1080 VIEW (0,0)-(639,399):WINDOW (0,0)-(639,399)
  10. 1090 CONSOLE ,,0 :WIDTH 80,25 :COLOR 7,0,7,0:CLS 0
  11. 1100 DIM TKI(2),XX(2),YY(2),QX(2),QY(2)
  12. 1110 'DIM H(2),M(2),AD$(3)
  13. 1120 MY=3.14159!*2:H=0:M=0:HK=0:MK=0:HKURI=0
  14. 1130 QQ=1:SQ=1:Q=-1:T=0:L=1:FRAG=1:CX=0:CY=0:CR=0:HATA=0
  15. 1140 AD$(1)="分が、ちがうよ    "
  16. 1150 AD$(2)="時間が、ちがうよ  "
  17. 1160 AD$(3)="時間と分がちがうよ"
  18. 1170 ON KEY(10) GOSUB *PF10    'end
  19. 1180 GOSUB *SELECT'::: レベル選択::
  20. 1190 GOSUB *GAMEN '::: 画面描画 ::
  21. 1200 GOSUB *LEVSYN'::: レベル表示::
  22. 1210 *MAIN '::: メインルーチン :::
  23. 1220 GOSUB *MONDAI ':: 問題作成 ::
  24. 1230 GOSUB *HARI1  ':: 針の描画 ::
  25. 1240 GOSUB *TOI    ':: 問い     ::
  26. 1250 GOSUB *KAI    ':: 回答要求 ::
  27. 1260 GOSUB *HANTEI ':: 判定    ::
  28. 1270 *MODORI       '::         ::
  29. 1280 GOSUB *TOKUTEN':: 得点    ::
  30. 1290 GOSUB *LEVEL  ':: レベル   ::
  31. 1300 GOTO *MAIN    '            ::
  32. 1310 '::::::::::::::::::::::::::::
  33. 2000 *MONDAI ':::::::: 問題作成 ::
  34. 2010 '問題の時刻 : h : m
  35. 2020 RANDOMIZE TIME-(INT(TIME/1000)*1000)
  36. 2030 HK=INT(RND*12)
  37. 2040 IF HK=0 THEN HK=12
  38. 2050  IF HK=HO THEN *MONDAI
  39. 2060 IF L=1 THEN MK=0
  40. 2070 IF L=2 THEN MK=INT(RND*2)*30
  41. 2080 IF L=3 THEN MK=INT(RND*6)*10
  42. 2090  IF L=3 AND MK= 0 THEN *MONDAI
  43. 2100 IF L=4 THEN MK=INT(RND*12)*5
  44. 2110 IF L=5 THEN MK=INT(RND*30)
  45. 2120 IF L=6 THEN MK=INT(RND*30)+30
  46. 2130 IF L=7 THEN MK=INT(RND*60)
  47. 2140  IF L=7 AND MK=30 THEN *MONDAI
  48. 2150  HO=HK
  49. 2160 RETURN
  50. 2170 *HARI1  ':: 針の描画 ::::::::::::::::
  51. 2180 CX=319:CY=175/2:CR=155
  52. 2190 HHH=0 : MMM=0
  53. 2200 XX(1)=CX :YY(1)=CY
  54. 2210 XX(2)=CX-9 :YY(2)=CY
  55. 2220 GOSUB *HARI
  56. 2230 RETURN
  57. 2240 *TOI': 問い :
  58. 2250 GOSUB *KESI
  59. 2260 H$=AKCNV$(RIGHT$(STR$(HK),2)): M$=AKCNV$(RIGHT$(STR$(MK),2))
  60. 2270 IF MK<>0 THEN 2300
  61. 2280 S$=H$+"時に合わせましょう ":CL=3:CLL=7:GOSUB *MES
  62. 2290 SX=5:SY=280:S$=H$+"時":SXX=2:SYY=3:CL=3:CLL=1:GOSUB*SYMBOL:RETURN
  63. 2300 S$=H$+"時"+M$+"分に合わせましょう ":CL=3:CLL=7:GOSUB *MES
  64. 2310 SX=5:SY=280:S$=H$+"時"+M$+"分":SXX=2:SYY=3:CL=3:CLL=1:GOSUB*SYMBOL:RETURN
  65. 2320 *KAI': 回答要求 :
  66. 2330 GOSUB *GUIDE
  67. 2340 GOSUB *KEY
  68. 2350 GOSUB *KAKUNIN
  69. 2360 IF OK=0 THEN 2330
  70. 2370 RETURN
  71. 2380 *HANTEI ': 正否判定 :
  72. 2390 H=H+M\60 :M=M MOD 60
  73. 2400 IF M<0 THEN H=H-1 :M=M+60
  74. 2410 H=(H+12) MOD 12
  75. 2420 IF H=0 THEN H=12
  76. 2430  IF H=HK AND M=MK THEN *SEIKAI ELSE *FUSEIKAI
  77. 2440 *FUSEIKAI ': 不正解 :
  78. 2450 GOSUB *KESI
  79. 2460  IF HK=H  AND MK<>M THEN AD=1
  80. 2470  IF HK<>H AND MK=M  THEN AD=2
  81. 2480  IF HK<>H AND MK<>M THEN AD=3
  82. 2490  S$="ざんねん! 2点ひくよ ":CL=3:CLL=5:GOSUB *MES
  83. 2500  S$=AD$(AD):CL=3:CLL=4:GOSUB *MES
  84. 2510 GOSUB *GENTEN
  85. 2520 T=T-2
  86. 2530 GOSUB *GUIDE
  87. 2540 GOSUB *KEY
  88. 2550 GOSUB *KAKUNIN
  89. 2560 IF OK=0 THEN 2540
  90. 2570 GOTO*HANTEI
  91. 2580 GOTO *MODORI
  92. 2590 *SEIKAI '::::::::: 正解 :::::::::::::
  93. 2600 GOSUB *KESIGUIDE
  94. 2610 KEY(10) ON:SYMBOL(532,308),"[pf10]",1,1,1:SYMBOL@(580,308),"やめる",1,1,1
  95. 2620  S$="せいかい!20点たすよ ":CL=3:CLL=6:GOSUB *MES
  96. 2630 GOSUB *KESITOI
  97. 2640 T=T+20:H=0:M=0
  98. 2650 KEY(10) OFF:GOSUB*KESIGUIDE
  99. 2660 GOTO *MODORI
  100. 2670 *TOKUTEN '::::::  点の表示  :::::::::
  101. 2680 FOR I=1 TO T-TM
  102. 2690  LINE(0,0)-(96,48),PSET,0,BF
  103. 2700   IF TM+I<1000 THEN H$=AKCNV$(RIGHT$(STR$(TM+I),3))
  104. 2710   IF TM+I<100THEN H$="  "+AKCNV$(RIGHT$(STR$(TM+I),2))
  105. 2720   IF TM+I<10 THEN H$="    "+AKCNV$(RIGHT$(STR$(TM+I),1))
  106. 2730  SX=0:SY=0:S$=H$:SXX=2:SYY=3:CL=3:CLL=2
  107. 2740  GOSUB *SYMBOL
  108. 2750 FOR A=1 TO 3 : BEEP 1 :FOR B=0 TO 2 : NEXT B : BEEP 0 :NEXT A
  109. 2760 NEXT I
  110. 2770  TM=T
  111. 2780 RETURN
  112. 2790 *GENTEN ':::::::: 減点の表示  :::::::
  113. 2800 FOR I=1 TO 2
  114. 2810 LINE(0,0)-(96,48),PSET,0,BF
  115. 2820  IF TM-I<0 THEN TTT=0 ELSE TTT=TM-I
  116. 2830   IF TM-I<1000 THEN H$=AKCNV$(RIGHT$(STR$(TTT),3))
  117. 2840   IF TM-I<100 THEN H$="  "+AKCNV$(RIGHT$(STR$(TTT),2))
  118. 2850   IF TM-I<10 THEN H$="    "+AKCNV$(RIGHT$(STR$(TTT),1))
  119. 2860  SX=0:SY=0:S$=H$:SXX=2:SYY=3:CL=3:CLL=2
  120. 2870  GOSUB *SYMBOL
  121. 2880 FOR A=1 TO 5 : BEEP 1 :FOR B=0 TO 3 : NEXT B : BEEP 0 :NEXT A
  122. 2890 NEXT I
  123. 2900  TM=T
  124. 2910 RETURN
  125. 2920 *LEVEL ':::::::::  レベル  ::::::::::
  126. 2930  IF T>=100 AND T<200 THEN 2940 ELSE 2950
  127. 2940   L=2 : GOSUB *OMEDETO : GOSUB *LEVSYN : RETURN
  128. 2950  IF T>=200 AND T<300 THEN 2960 ELSE 2970
  129. 2960   L=3 : GOSUB *OMEDETO : GOSUB *LEVSYN : RETURN
  130. 2970  IF T>=300 AND T<400 THEN 2980 ELSE 2990
  131. 2980   L=4 : GOSUB *OMEDETO : GOSUB *LEVSYN : RETURN
  132. 2990  IF T>=400 AND T<500 THEN 3000 ELSE 3010
  133. 3000   L=5 : GOSUB *OMEDETO : GOSUB *LEVSYN : RETURN
  134. 3010  IF T>=500 AND T<600 THEN 3020 ELSE 3030
  135. 3020   L=6 : GOSUB *OMEDETO : GOSUB *LEVSYN : RETURN
  136. 3030  IF T>=600 AND T<700 THEN 3040 ELSE 3050
  137. 3040   L=7 : GOSUB *OMEDETO : GOSUB *LEVSYN : RETURN
  138. 3050  IF T>=700 THEN 3060 ELSE RETURN
  139. 3060   GOTO *END
  140. 3070 *LEVSYN':::::::::::::::::::::::::::::
  141. 3080  LINE(510,0)-(639,48),PSET,0,BF
  142. 3090 SX=500:SY=0:S$="レベル"+AKCNV$(RIGHT$(STR$(L),1)):SXX=2:SYY=3:CL=3:CLL=5:GOSUB *SYMBOL
  143. 3100 RETURN
  144. 3110 *END ':::::::  エンディング  ::::::::
  145. 3120  GOSUB *OMEDETO
  146. 3130  S$="時計合わせよくできた! ":CL=1:CLL=3:GOSUB *MES
  147. 3140 'flush
  148. 3150 FOR F=1 TO 300
  149. 3160  COLOR=(5,3)
  150. 3170 FOR FF=1 TO 100 : NEXT FF
  151. 3180  COLOR=(5,0)
  152. 3190 FOR FF=1 TO 300 :NEXT FF
  153. 3200  COLOR=(6,2)
  154. 3210 FOR FF=1 TO 100 : NEXT FF
  155. 3220  COLOR=(6,0)
  156. 3230 FOR FF=1 TO 300 :NEXT FF
  157. 3240 NEXT F
  158. 3250 'TRY OR END
  159. 3260 LOCATE 25,24:PRINT "1.もう一度  ちょうせん"
  160. 3270 LOCATE 25,25:INPUT "2.メニューに もどる    ",KRI
  161. 3280 IF KRI<1 OR KRI>2 THEN BEEP:LOCATE 25,40:PRINT SPACE$(10):GOTO 3260
  162. 3290 IF KRI=1 THEN 1000 ELSE GOSUB*COLRES : RUN "MENU386.BAS"
  163. 3300 *PF10
  164. 3310 GOSUB*KESI
  165. 3320 SX=30:SY=359:S$="やめていいですか":SXX=2:SYY=2:CL=1:CLL=3:GOSUB*SYMBOL
  166. 3330 GOSUB*KESIGUIDE:GOSUB*KAKUNIN
  167. 3340 IF OK=0 THEN GOSUB*KESI:GOTO 2630
  168. 3350 GOSUB*KESI:S$="今回のレベルは"+AKCNV$(RIGHT$(STR$(L),1))+"です":SXX=2:SYY=2:CL=2:CLL=3:GOSUB*MES
  169. 3360 GOSUB*COLRES : RUN"menu386.bas"
  170. 3370 *OMEDETO '::::::  おめでとう  :::::::
  171. 3380 IF FRAG=L THEN 3430 
  172. 3390    FOR N=1 TO 7 : BEEP 1 : FOR B=1 TO 4 : NEXT B : BEEP 0 : NEXT N
  173. 3400   SX=210:SY=357:S$="☆おめでとう☆ ":SXX=2:SYY=2:CL=3:CLL=5:GOSUB *SYMBOL
  174. 3410    O$=INKEY$:IF O$="" THEN GOSUB*OMEFLUSH : GOTO 3410
  175. 3415   GOSUB *KESI
  176. 3420  FRAG=FRAG+1
  177. 3430 RETURN
  178. 3440 *HARI '::::::: 針の描画 :::::::::::::
  179. 3450 GOSUB *KESIEN
  180. 3460 TKI(1)=MMM:HARI=1 :CL=1 :CL2=3:R=37*CR/190 '長針 CL=色R=長さ
  181. 3470 GOSUB *HARINOITI
  182. 3480 TKI(2)=HHH MOD 12 :TKI(2)=(TKI(2)+TKI(1)/60)*5
  183. 3490 HARI=2 :CL=2 :CL2=3:R=27*CR/190 '短針
  184. 3500 GOSUB *HARINOITI
  185. 3510 TKI(1)=MMM:HARI=1 :CL=3 :CL2=2:R=33*CR/190
  186. 3520 GOSUB *HARIKAKI
  187. 3530 TKI(2)=HHH MOD 12 :TKI(2)=(TKI(2)+TKI(1)/60)*5
  188. 3540 HARI=2 :CL=2 :CL2=3:R=27*CR/190
  189. 3550 GOSUB *HARIKAKI
  190. 3570 QQ=1
  191. 3580 RETURN
  192. 3590 *HARINOITI '::::: 針の位置計算 ::::::
  193. 3600 X=SIN(TKI(HARI)/60*MY)*4.8!*R :X=X+CX
  194. 3610 Y=-COS(TKI(HARI)/60*MY)*2.15!*R:Y=Y+CY
  195. 3620 IF SQ=-1 AND QQ=-1 THEN 3700
  196. 3630 LINE(CX,CY*2)-(XX(HARI),YY(HARI)*2),PSET,0
  197. 3640 LINE(CX,CY*2+1)-(XX(HARI),YY(HARI)*2+1),PSET,0
  198. 3650 LINE(CX,CY*2-1)-(XX(HARI),YY(HARI)*2-1),PSET,0
  199. 3660 LINE(CX+1,CY*2)-(XX(HARI)+1,YY(HARI)*2),PSET,0
  200. 3670 LINE(CX-1,CY*2)-(XX(HARI)-1,YY(HARI)*2),PSET,0
  201. 3680 LINE(CX+1,CY*2+1)-(XX(HARI)+1,YY(HARI)*2+1),PSET,0
  202. 3690 LINE(CX-1,CY*2-1)-(XX(HARI)-1,YY(HARI)*2-1),PSET,0
  203. 3700 IF QX(HARI)=XX(HARI) THEN LINE (CX,CY*2)-(XX(HARI),YY(HARI)*2),PSET,6
  204. 3710 IF SQ=-1 THEN LINE(CX,CY*2)-(QX(2),QY(2)*2),PSET,6
  205. 3720 IF SQ=-1 THEN LINE(CX,CY*2)-(QX(1),QY(1)*2),PSET,6
  206. 3730 LINE (CX-1,CY*2)-(X-1,Y*2),PSET,CL
  207. 3740 LINE (CX,CY*2+1)-(X,Y*2+1),PSET,CL
  208. 3750 LINE (CX,CY*2-1)-(X,Y*2-1),PSET,CL
  209. 3760 LINE (CX+1,CY*2)-(X+1,Y*2),PSET,CL
  210. 3770 LINE (CX-1,CY*2-1)-(X-1,Y*2-1),PSET,CL
  211. 3780 LINE (CX+1,CY*2+1)-(X+1,Y*2+1),PSET,CL
  212. 3790 LINE (CX,CY*2)-(X,Y*2),PSET,CL2
  213. 3800 XX(HARI)=X :YY(HARI)=Y
  214. 3810 IF HARI=1 THEN 3850
  215. 3820 HH=HHH MOD 12
  216. 3830 IF M<>0 OR (ABS(HH)=1 AND ABS(HH)<>11) THEN 3850
  217. 3840 LINE (CX,CY*2)-(XX(1),YY(1)*2),PSET,3
  218. 3850 IF H=1 AND M=0 THEN LINE (CX,CY*2)-(XX(1),YY(1)*2),PSET,4
  219. 3860 RETURN
  220. 3870 *HARIKAKI '::::: 針の書き直し :::::::
  221. 3880 X=SIN(TKI(HARI)/60*MY)*4.8!*R :X=X+CX
  222. 3890 Y=-COS(TKI(HARI)/60*MY)*2.15!*R:Y=Y+CY
  223. 3900 IF QX(HARI)=XX(HARI) THEN LINE (CX,CY*2)-(XX(HARI),YY(HARI)*2),PSET,6
  224. 3910 IF SQ=-1 THEN LINE(CX,CY*2)-(QX(2),QY(2)*2),PSET,6
  225. 3920 IF SQ=-1 THEN LINE(CX,CY*2)-(QX(1),QY(1)*2),PSET,6
  226. 3930 LINE (CX-1,CY*2)-(X-1,Y*2),PSET,CL
  227. 3940 LINE (CX,CY*2+1)-(X,Y*2+1),PSET,CL
  228. 3950 LINE (CX,CY*2-1)-(X,Y*2-1),PSET,CL
  229. 3960 LINE (CX+1,CY*2)-(X+1,Y*2),PSET,CL
  230. 3970 LINE (CX-1,CY*2-1)-(X-1,Y*2-1),PSET,CL
  231. 3980 LINE (CX+1,CY*2+1)-(X+1,Y*2+1),PSET,CL
  232. 3990 LINE (CX,CY*2)-(X,Y*2),PSET,CL2
  233. 4000 XX(HARI)=X :YY(HARI)=Y
  234. 4010 HH=H MOD 12
  235. 4020 LINE (CX,CY*2)-(XX(1),YY(1)*2),PSET,3
  236. 4030 IF H=1 AND M=0 THEN LINE (CX,CY*2)-(XX(1),YY(1)*2),PSET,4
  237. 4040  RETURN
  238. 4050 *SELECT::::::::::::::::::::::::::::::::::
  239. 4060 TITLE$="時計のおべんきょう -合わせょう-"
  240. 4070 LV=7
  241. 4080 LV$(1)="        3時      というもんだい"
  242. 4090 LV$(2)="        3時30分というもんだい"
  243. 4100 LV$(3)="        3時50分というもんだい"
  244. 4110 LV$(4)="        3時15分というもんだい"
  245. 4120 LV$(5)="        3時13分というもんだい"
  246. 4130 LV$(6)="        3時33分というもんだい"
  247. 4140 LV$(7)="    *  さいごのれんしゅうもんだい *"
  248. 4150 ' 選択画面
  249. 4160 LINE(0,0)-(639,38),PSET,7,B
  250. 4170 LINE(1,1)-(638,37),PSET,7,B
  251. 4180 LINE(2,2)-(637,36),PSET,1,BF
  252. 4190  LINE(0,37)-(639,38),PSET,0,B
  253. 4200  LINE(638,0)-(639,38),PSET,0,B
  254. 4210 LINE(0,39)-(639,399),PSET,7,BF
  255. 4220 SX=47:SY=4:S$=TITLE$:SXX=2:SYY=2:CL=0:CLL=6:GOSUB *SYMBOLK
  256. 4230 FOR LVV=0 TO LV-1
  257. 4240  LINE(23,42+LVV*36)-(172,38+36+LVV*36),PSET,4,BF
  258. 4250  LINE(21,41+LVV*36)-(174,39+36+LVV*36),PSET,0,B
  259. 4260  LINE(20,40+LVV*36)-(175,40+36+LVV*36),PSET,0,B
  260. 4270  LINE(20,40+LVV*36)-(175,40+ 1+LVV*36),PSET,5,BF
  261. 4280  LINE(20,40+LVV*36)-( 21,40+36+LVV*36),PSET,5,BF
  262. 4290  SX=35:SY=42+LVV*36:S$="レベル"+AKCNV$(RIGHT$(STR$(LVV+1),1)):SXX=2:SYY=2:CL=7:CLL=1:GOSUB *SYMBOLK
  263. 4300  LINE(178,42+LVV*36)-(601,38+36+LVV*36),PSET,6,BF
  264. 4310  LINE(176,41+LVV*36)-(603,39+36+LVV*36),PSET,0,B
  265. 4320  LINE(175,40+LVV*36)-(604,40+36+LVV*36),PSET,0,B
  266. 4330  LINE(175,40+LVV*36)-(604,40+ 1+LVV*36),PSET,5,BF
  267. 4340  LINE(175,40+LVV*36)-(176,40+36+LVV*36),PSET,5,BF
  268. 4350  SX=230:SY=42+LVV*36:S$=LV$(LVV+1):SXX=1:SYY=2:CL=7:CLL=1:GOSUB *SYMBOLK
  269. 4360 NEXT LVV
  270. 4370 '
  271. 4380 LVS=1
  272. 4390 *LEVXOR
  273. 4400  LINE(20,40+(LVS-1)*36)-(175,40+36+(LVS-1)*36),XOR,4,BF
  274. 4410  LINE(175,40+(LVS-1)*36)-(604,40+36+(LVS-1)*36),XOR,5,BF
  275. 4420 A$=INKEY$ : IF A$="" THEN 4420
  276. 4430  LINE(20,40+(LVS-1)*36)-(175,40+36+(LVS-1)*36),XOR,4,BF
  277. 4440  LINE(175,40+(LVS-1)*36)-(604,40+36+(LVS-1)*36),XOR,5,BF
  278. 4450  IF A$=CHR$(&HD) THEN *LEVKIME
  279. 4460  IF A$=CHR$(&H1E) THEN LVS=LVS-1 '↑
  280. 4470  IF A$=CHR$(&H1F) THEN LVS=LVS+1 '↓
  281. 4480   IF LVS=0 THEN LVS=LV
  282. 4490   IF LVS=LV+1 THEN LVS=1
  283. 4500 GOTO *LEVXOR
  284. 4510 *LEVKIME
  285. 4520 L=LVS : FRAG=L
  286. 4530 T=(LVS-1)*100 : TM=T
  287. 4540 RETURN
  288. 4550 CLS : CONSOLE ,,0
  289. 5000 *GAMEN '::::: gamen ::::: for AwaseruTokei
  290. 5010 COLOR=(5,0) : COLOR=(6,0) : CLS
  291. 5020 ': shape :
  292. 5030 CIRCLE(319,175),203,1,.85!,.75!-.1!,.75!+.1!
  293. 5040 LINE(319-118,35)-(319-266,103),PSET,1
  294. 5050 LINE(319+118,35)-(319+266,103),PSET,1
  295. 5060 CIRCLE(319-244,173),72,1,1,.5!,.7!
  296. 5070 CIRCLE(319+244,173),72,1,1,.8!,1
  297. 5080 LINE(319-316,175)-(319-317,322),PSET,1
  298. 5090 LINE(319+316,175)-(319+317,322),PSET,1
  299. 5100 CIRCLE(319-294,322),23,1,1,.25!,.5!
  300. 5110 CIRCLE(319+294,322),23,1,1,0,.25!
  301. 5120 LINE(319-296,345)-(319+296,345),PSET,1
  302. 5130 CIRCLE(319-244,89),54,1,.59!,.38!,.75!
  303. 5140 CIRCLE(319+244,89),54,1,.59!,.75!,.12!
  304. 5150 LINE(319-244,57)-(319-164,57),PSET,1
  305. 5160 LINE(319+244,57)-(319+164,57),PSET,1
  306. 5170 C=3
  307. 5180 CIRCLE(319,176),203,C,.85!,.75!-.1!,.75!+.1!
  308. 5190 LINE(319-118,36)-(319-266,104),PSET,C
  309. 5200 LINE(319+118,36)-(319+266,104),PSET,C
  310. 5210 CIRCLE(319-244,174),72,C,1,.5!,.7!
  311. 5220 CIRCLE(319+244,174),72,C,1,.8!,1
  312. 5230 LINE(319-315,173)-(319-316,322),PSET,C
  313. 5240 LINE(319+315,173)-(319+316,322),PSET,C
  314. 5250 CIRCLE(319-294,321),23,C,1,.25!,.5!
  315. 5260 CIRCLE(319+294,321),23,C,1,0,.25!
  316. 5270 LINE(319-296,344)-(319+296,344),PSET,C
  317. 5280 CIRCLE(319-244,90),54,C,.59!,.38!,.75!
  318. 5290 CIRCLE(319+244,90),54,C,.59!,.75!,.12!
  319. 5300 LINE(319-244,58)-(319-164,58),PSET,C
  320. 5310 LINE(319+244,58)-(319+164,58),PSET,C
  321. 5320 C=2
  322. 5330 CIRCLE(319,177),203,C,.85!,.75!-.1!,.75!+.1!
  323. 5340 LINE(319-118,37)-(319-266,105),PSET,C
  324. 5350 LINE(319+118,37)-(319+266,105),PSET,C
  325. 5360 CIRCLE(319-243,175),72,C,1,.5!,.7!
  326. 5370 CIRCLE(319+243,175),72,C,1,.8!,1
  327. 5380 LINE(319-314,173)-(319-315,322),PSET,C
  328. 5390 LINE(319+314,173)-(319+315,322),PSET,C
  329. 5400 CIRCLE(319-293,320),23,C,1,.25!,.5!
  330. 5410 CIRCLE(319+293,320),23,C,1,0,.25!
  331. 5420 LINE(319-296,343)-(319+296,343),PSET,C
  332. 5430 CIRCLE(319-243,90),54,C,.59!,.38!,.75!
  333. 5440 CIRCLE(319+243,90),54,C,.59!,.75!,.12!
  334. 5450 LINE(319-244,59)-(319-164,59),PSET,C
  335. 5460 LINE(319+244,59)-(319+164,59),PSET,C
  336. 5470 PAINT(319-244,89),5,1,2,3
  337. 5480 PAINT(319+244,89),5,1,2,3
  338. 5490 ': box :
  339. 5500 LINE(0,348)-(639,348),PSET,1,B
  340. 5510 LINE(0,349)-(639,349),PSET,3,B
  341. 5520 LINE(0,399)-(639,399),PSET,1,B
  342. 5530 LINE(0,398)-(639,398),PSET,3,B
  343. 5540 SX=100:SY=0:S$="点":SXX=2:SYY=3:CL=3:CLL=2:GOSUB*SYMBOL
  344. 5550 '時計盤描画
  345. 5560 R=165
  346. 5570 MY=3.14159!*2:CX=319:CY=175/2:CR=165:GOSUB *MEMORI
  347. 5580 RETURN
  348. 5590 *MEMORI ':::::::  目盛  ::::::::::::
  349. 5600 FOR I=1 TO 60
  350. 5610 X1=SIN(M+I/60*MY)*4.8!*39*CR/190 :X1=X1+CX
  351. 5620 Y1=-COS(M+I/60*MY)*2.15!*39*CR/190 :Y1=Y1+CY
  352. 5630 IF (I MOD 5)<>0 THEN 5680
  353. 5640 IF I=60 THEN CIRCLE(X1,Y1*2),5,2
  354. 5650 IF I=60 OR I=30 OR I=15 OR I=45 THEN CIRCLE(X1,Y1*2),4,3
  355. 5660 IF I=60 OR I=30 OR I=15 OR I=45 THEN CIRCLE(X1,Y1*2),3,2
  356. 5670 CIRCLE(X1,Y1*2),2,3
  357. 5680 CIRCLE(X1,Y1*2),1,2
  358. 5690 PSET(X1,Y1*2),3
  359. 5700 NEXT
  360. 5710  RETURN
  361. 6000 *GUIDE': guide :
  362. 6010 LINE(548,255)-(566,281),PSET,3,B
  363. 6020 LINE(514,277)-(540,295),PSET,3,B
  364. 6030 LINE(548,290)-(566,316),PSET,3,B
  365. 6040 LINE(574,277)-(600,295),PSET,3,B
  366. 6050 CONNECT(551,265)-(557,259)-(563,265),3
  367. 6060 CONNECT(552,265)-(557,260)-(562,265),2
  368. 6070 LINE(556,262)-(558,277),PSET,3,B
  369. 6080 LINE(557,261)-(557,277),PSET,2
  370. 6090 CONNECT(524,292)-(518,286)-(524,280),3
  371. 6100 CONNECT(524,291)-(519,286)-(524,281),2
  372. 6110 LINE(521,285)-(536,287),PSET,3,B
  373. 6120 LINE(520,286)-(536,286),PSET,2
  374. 6130 CONNECT(551,306)-(557,312)-(563,306),3
  375. 6140 CONNECT(552,306)-(557,311)-(562,306),2
  376. 6150 LINE(556,294)-(558,309),PSET,3,B
  377. 6160 LINE(557,294)-(557,310),PSET,2
  378. 6170 CONNECT(590,280)-(596,286)-(590,292),3
  379. 6180 CONNECT(590,281)-(595,286)-(590,291),2
  380. 6190 LINE(578,285)-(593,287),PSET,3,B
  381. 6200 LINE(578,286)-(594,286),PSET,2
  382. 6210 SYMBOL@(549,234),"分",1,1,1
  383. 6220 SYMBOL@(549,322),"分",1,1,1
  384. 6230 SYMBOL@(493,278),"時",1,1,1
  385. 6240 SYMBOL@(608,278),"時",1,1,1
  386. 6250 SYMBOL@(489,247),"もどる",1,1,2
  387. 6260 SYMBOL@(582,308),"すすむ",1,1,2
  388. 6270 RETURN
  389. 6280 *KEY ': キーの判別 :
  390. 6290 A$=INKEY$ :IF A$="" THEN 6290
  391. 6300 IF A$=CHR$(&H0D) THEN RETURN
  392. 6310 IF A$="5" THEN M=0
  393. 6320 IF A$=CHR$(&H1F) THEN M=M+1
  394. 6330 IF A$="3" THEN M=M+1
  395. 6340 IF A$=CHR$(&H1E) THEN M=M-1
  396. 6350 IF A$="1" THEN M=M-1
  397. 6360 IF A$=CHR$(&H1D) THEN M=M-60
  398. 6370 IF A$="7" THEN M=M-60
  399. 6380 IF A$=CHR$(&H1C) THEN M=M+60
  400. 6390 IF A$="9" THEN M=M+60
  401. 6400 IF A$="6" THEN M=M+10
  402. 6410 IF A$="4" THEN M=M-10
  403. 6420 HHH=H : MMM=M
  404. 6430  GOSUB *HARI
  405. 6440 GOTO 6290
  406. 6450 RETURN
  407. 6460 *KAKUNIN'::::::::::  確認  ::::::::::
  408. 6470  GOSUB *KESIGUIDE
  409. 6480 GOSUB *YA
  410. 6490   SYMBOL@(498,247),"い い",1,1,3,,NOT
  411. 6500   SYMBOL@(568,247),"なおす",1,1,3,,PSET
  412. 6510 HATA=0 :A$=""
  413. 6520  *K1
  414. 6530   A$=INKEY$ : IF A$="" THEN *K1
  415. 6540    IF A$=CHR$(&H1C) OR A$="3" OR A$="6" OR A$="9" THEN 6610
  416. 6550    IF A$=CHR$(&H1D) OR A$="1" OR A$="4" OR A$="7" THEN 6470
  417. 6560    IF A$=CHR$(&HD) AND HATA=1 THEN GOTO 6590
  418. 6570    IF A$=CHR$(&HD) AND HATA=0 THEN GOTO 6600
  419. 6580   GOTO 6470
  420. 6590 GOSUB *KESIGUIDE : A$="" : OK=0 : RETURN
  421. 6600 GOSUB *KESIGUIDE : A$="" : OK=1 : RETURN
  422. 6610   GOSUB *KESIGUIDE
  423. 6620 GOSUB *YA
  424. 6630   SYMBOL@(498,247),"い い",1,1,3,,PSET
  425. 6640   SYMBOL@(568,247),"なおす",1,1,3,,NOT
  426. 6650  HATA=1 : A$=""
  427. 6660  GOTO *K1
  428. 6670 RETURN
  429. 6680 *YA ':カーソルキ~表示 :
  430. 6690 LINE(514,277)-(540,295),PSET,3,B
  431. 6700 LINE(574,277)-(600,295),PSET,3,B
  432. 6710 CONNECT(524,292)-(518,286)-(524,280),3
  433. 6720 CONNECT(524,291)-(519,286)-(524,281),2
  434. 6730 LINE(521,285)-(536,287),PSET,3,B
  435. 6740 LINE(520,286)-(536,286),PSET,2
  436. 6750 CONNECT(590,280)-(596,286)-(590,292),3
  437. 6760 CONNECT(590,281)-(595,286)-(590,291),2
  438. 6770 LINE(578,285)-(593,287),PSET,3,B
  439. 6780 LINE(578,286)-(594,286),PSET,2
  440. 6790 RETURN
  441. 6800 *KESI ': kesibox :
  442. 6810  LINE(26,357)-(613,390),PSET,0,BF
  443. 6820 RETURN
  444. 6830 *KESITOI ': kesitoi :
  445. 6840  LINE(5,280)-(197,330),PSET,0,BF
  446. 6850 RETURN
  447. 6860 *KESIGUIDE ':kesi guide :
  448. 6870 LINE(489,234)-(628,338),PSET,0,BF
  449. 6880 RETURN
  450. 6890 *KESIEN '::::          :::::::::::::
  451. 6900  CIRCLE(319,175),155-5,0,.9!,,,F
  452. 6910 RETURN
  453. 6920 *SYMBOL'::::::: SYMBOL@::::::::
  454. 6930  SYMBOL@(SX,SY),S$,SXX,SYY,CL
  455. 6940  SYMBOL@(SX+2,SY),S$,SXX,SYY,CL
  456. 6950  SYMBOL@(SX+2,SY+2),S$,SXX,SYY,CL
  457. 6960  SYMBOL@(SX,SY+2),S$,SXX,SYY,CL
  458. 6970  SYMBOL@(SX+1,SY+1),S$,SXX,SYY,CLL
  459. 6980 RETURN
  460. 6990 *SYMBOLC'::::: SYMBOL :::::::::
  461. 7000  SYMBOL(SX,SY),S$,SXX,SYY,CL
  462. 7010  SYMBOL(SX+2,SY),S$,SXX,SYY,CL
  463. 7020  SYMBOL(SX+2,SY+2),S$,SXX,SYY,CL
  464. 7030  SYMBOL(SX,SY+2),S$,SXX,SYY,CL
  465. 7040  SYMBOL(SX+1,SY+1),S$,SXX,SYY,CLL
  466. 7050 RETURN
  467. 7060 *SYMBOLK'::::::: SYMBOL@::::::::
  468. 7070  SYMBOL@(SX+1,SY+1),S$,SXX,SYY,CL
  469. 7080  SYMBOL@(SX+2,SY+1),S$,SXX,SYY,CL
  470. 7090  SYMBOL@(SX,SY),S$,SXX,SYY,CLL
  471. 7100 RETURN
  472. 7110 *MES ': message :
  473. 7120  SX=33:SY=357:SXX=2:SYY=2
  474. 7130 FOR I=2 TO KLEN(S$)*2+25 STEP 2
  475. 7140 B$=LEFT$(S$,I)
  476. 7150  SYMBOL@(639-I*16,359),B$,2,2,7
  477. 7160  IF I*16-KLEN(S$)/2*16>360 AND I*16-KLEN(S$)/2*16<=390 THEN TT=0 ELSE TT=1
  478. 7170   IF TT=0 THEN I$=INKEY$ : IF I$="" THEN 7170
  479. 7180   LINE(639-I*16,359)-(639-I*16+KLEN(S$)*32,392),PSET,0,BF
  480. 7190  NEXT
  481. 7200 RETURN
  482. 7210 *OMEFLUSH
  483. 7220 FOR F=1 TO 30
  484. 7230  COLOR=(5,3)
  485. 7240 FOR FF=1 TO 100 : NEXT FF
  486. 7250  COLOR=(5,0)
  487. 7260 FOR FF=1 TO 100 :NEXT FF
  488. 7270  COLOR=(5,2)
  489. 7280 FOR FF=1 TO 100 : NEXT FF
  490. 7290  COLOR=(5,0)
  491. 7300 FOR FF=1 TO 100 :NEXT FF
  492. 7310 NEXT F
  493. 7320 RETURN
  494. 7330 *COLRES
  495. 7340 FOR C=0 TO 7
  496. 7350  COLOR=(C,C)
  497. 7360 NEXT
  498. 7370 RETURN
  499. 8000 ':::::::::::::::: end of the program ::::::::::::::★akihikoHayashi★
  500.